home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr05 / mswlogo3.zip / MSWLOGO.ZIP / EXAMPLES.ZIP / CALC.WIN < prev    next >
Text File  |  1993-04-11  |  3KB  |  84 lines

  1. ;
  2. ; Function:
  3. ;
  4. ; Simple Windows Calculator.
  5. ;
  6. ; To run:
  7. ;
  8. ; Load "calc.win
  9. ; Call CALC
  10. ;
  11.  
  12. to calc
  13. local "marx make "marx 5
  14. local "mary make "mary 20
  15. local "sizx make "sizx 10
  16. local "sizy make "sizy 10
  17. local "wnx make "wnx 100
  18. local "wny make "wny 90
  19.  
  20. dialogcreate "main "calc [Calculator] 0 0 :wnx :wny
  21.  
  22. comboboxcreate "calc "c1 :marx 5 :sizx*9 12
  23.  
  24. buttoncreate "calc "bd ". :marx+:sizx*0 :mary+:sizy*3 :sizx :sizy [number ".]
  25. buttoncreate "calc "b0 "0 :marx+:sizx*1 :mary+:sizy*3 :sizx :sizy [number 0]
  26. buttoncreate "calc "bn "- :marx+:sizx*2 :mary+:sizy*3 :sizx :sizy [negate]
  27. buttoncreate "calc "b1 "1 :marx+:sizx*0 :mary+:sizy*2 :sizx :sizy [number 1]
  28. buttoncreate "calc "b2 "2 :marx+:sizx*1 :mary+:sizy*2 :sizx :sizy [number 2]
  29. buttoncreate "calc "b3 "3 :marx+:sizx*2 :mary+:sizy*2 :sizx :sizy [number 3]
  30. buttoncreate "calc "b4 "4 :marx+:sizx*0 :mary+:sizy*1 :sizx :sizy [number 4]
  31. buttoncreate "calc "b5 "5 :marx+:sizx*1 :mary+:sizy*1 :sizx :sizy [number 5]
  32. buttoncreate "calc "b6 "6 :marx+:sizx*2 :mary+:sizy*1 :sizx :sizy [number 6]
  33. buttoncreate "calc "b7 "7 :marx+:sizx*0 :mary+:sizy*0 :sizx :sizy [number 7]
  34. buttoncreate "calc "b8 "8 :marx+:sizx*1 :mary+:sizy*0 :sizx :sizy [number 8]
  35. buttoncreate "calc "b9 "9 :marx+:sizx*2 :mary+:sizy*0 :sizx :sizy [number 9]
  36.  
  37. buttoncreate "calc "bm "* :marx+:sizx*4 :mary+:sizy*0 :sizx :sizy [state 1]
  38. buttoncreate "calc "bq "/ :marx+:sizx*4 :mary+:sizy*1 :sizx :sizy [state 2]
  39. buttoncreate "calc "ba "+ :marx+:sizx*4 :mary+:sizy*2 :sizx :sizy [state 3]
  40. buttoncreate "calc "bs "- :marx+:sizx*4 :mary+:sizy*3 :sizx :sizy [state 4]
  41.  
  42. buttoncreate "calc "be "= :marx+:sizx*4 :mary+:sizy*4+:sizy/2 :sizx :sizy [dofunction]
  43. buttoncreate "calc "bc "CLEAR :marx :mary+:sizy*4+:sizy/2 :sizx*3 :sizy [clear]
  44.  
  45. buttoncreate "calc "bend "CLOSE :marx+:sizx*6 :mary+:sizy*4+:sizy/2 :sizx*3 :sizy [myend]
  46. end
  47.  
  48. to clear
  49. make "function 0
  50. make "firstarg 0
  51. comboboxsettext "c1 []
  52. end
  53.  
  54. to dofunction
  55. local "answer
  56. local "secondarg make "secondarg comboboxgettext "c1
  57. if :function = 1 [make "answer  (first :firstarg) * (first :secondarg)]
  58. if :function = 2 [make "answer  (first :firstarg) / (first :secondarg)]
  59. if :function = 3 [make "answer  (first :firstarg) + (first :secondarg)]
  60. if :function = 4 [make "answer  (first :firstarg) - (first :secondarg)]
  61. comboboxsettext "c1 :answer
  62. end
  63.  
  64. to myend
  65. dialogdelete "calc
  66. end
  67.  
  68. to negate
  69. comboboxsettext "c1 ((first (comboboxgettext "c1)) * -1)
  70. end
  71.  
  72. to number :arg
  73. local "temp make "temp comboboxgettext "c1
  74. ifelse :temp = []~
  75.   [comboboxsettext "c1 :arg]~
  76.   [comboboxsettext "c1 word first :temp :arg]
  77. end
  78.  
  79. to state :arg
  80. make "function :arg
  81. make "firstarg comboboxgettext "c1
  82. comboboxsettext "c1 []
  83. end
  84.